代写完成–JS: canvas小游戏
JS棋类游戏,绘制棋盘棋子,棋子可移动,人机可以对战。
游戏包含三个阶段: setup, play和end阶段
play阶段游戏是循环进行的,游戏在一个6*6的格上进行。用户控制红块,程序控制黑块,
以及在格子上不能移动的块。最多12个红块和12个黑块,每个块上有1-6的数字,其中最多有三个
红块标有数字1, 标有2,3,4,5的红块最多各有两个,标有数字6的红块最多有一个,黑块同样如此。
setup
游戏从setup阶段开始,并且setup阶段包含三个回合。在这个阶段,给定一个grid和一个按钮,
顺序操作,点击按钮可以进入下一个回合。在setup阶段,用户把红块黑块和不能移动的块放置在grid上
每个格最多只能放置一个块,并且每个格上如果放了块就不能再改变。
setup阶段的第一个回合,用户通过点击一个小格并按字母b放置任意数量的不可移动的块到grid上:
假如用户按的字母不是b,提示错误并且没有东西会被放置在格上
假如用户尝试改变已经存在的一个块,提示错误并不做任何改变
setup阶段的第二个回合,用户放置最多12个红块到grid上。用户通过点一个格并按字母1-6来完成一次
放置操作:
假如用户输入不是1-6,提示错误,忽略操作
假如用户尝试放置比数字出现次数限制更多的红块,提示错误,忽略操作
假如用户尝试放置多于12个红块,提示错误,忽略操作
假如用户尝试不放置任何红块就进入下一个回合,提示错误,并忽略操作
假如用户尝试改变已经存在的一个块,提示错误并不做任何改变
setup阶段的第三个回合,和第二个回合一致,改红块为黑块。
用户点击按钮进入下一个回合,这里需要保证grid上至少存在一个黑块和一个红块。
play
play阶段,用户进入play阶段后,界面应该向用户展示如下信息:
格上的所有信息,状态信息(当前处于多少回合,红块的残余数,黑块的残余数),结束按钮
在play阶段,游戏也按回合进行,每个回合按用户操纵和电脑操作交互进行。每个回合开始的时候
回合数加一,并且状态信息更新
在每一个回合中,用户或者电脑尝试移动一个他们的块,可能存在用户或者电脑不存在任何可移动块
的情况,这应该在每次用户或者电脑的操作之前被判断,并且如果这种情况发生,游戏应该进入end阶段
用户操作的环节,用户点击一个块并且按方向键asdw控制网格上下左右移动一个格。
如果是用户按的是其他键,提示错误。
假如用户的移动操作会导致选择的块被移出边界,或者移动到一个不可移动的块占据的位置,或者
一个已经被红块占领了的位置,提示错误,用户可以重新选择移动操作。否则的话,这次移动是成功的,
如果目的格本身就是空的,直接移动,用户操作环节结束
如果目的格有一个黑块,并且红块的数字比目的格黑块的数字大(构成环,也就是说1 > 6),
那么黑块消除,否则红块消除,状态信息更新
用户操作环节结束后进入电脑操作环节,
电脑操作环节与用户操作环节的规则一致,电脑选择一个可以移动的黑块并进行移动。
电脑移动之后,当前回合结束
play阶段一直继续,直到达到以下某个结束条件:
用户点击结束按钮主动结束游戏
grid上没有可以移动的红块(包含没有红块的情况)
grid上没有可以移动的黑块(包含没有黑块的情况)
end
play阶段结束之后,游戏进入end阶段,end阶段判胜负,如果grid上没有黑块用户胜,
没有红块电脑胜,否则平局,蹦出提示信息,并且结束游戏,不再接收用户输入